import { Provide, Init, Config } from '@midwayjs/core';
//import { IUserOptions } from '../interface';
import * as mysql from 'mysql2'; // 引入 mysql2 模块，使用命名空间导入方式解决没有默认导出的问题

@Provide()
export class UserService {
  // 声明数据库连接池变量
  private pool: mysql.Pool;

  @Config('mysql')
  mysqlConfig;

  // Midway 初始化生命周期（服务创建后自动执行）
  @Init()
  async onInit() {
    // 初始化 MySQL 连接池（实际配置应从 config 目录读取，示例简化）
    this.pool = mysql.createPool(this.mysqlConfig.client);
  }

  // 新增：数据库存储方法（类似 Express 示例中的 /api/data 逻辑）
  // 新增：数据库存储方法（适配 time、temp、humi 字段）
  async saveUser(formData: {temp: number; humi: number; time: string}) {
    const { temp, humi, time } = formData;
    
    // 确保时间格式正确
    const formattedTime = new Date(time).toISOString().slice(0, 19).replace('T', ' ');
    
    // 将温度和湿度转换为整数
    const tempInt = Math.round(temp);
    const humiInt = Math.round(humi);
    
    return new Promise((resolve, reject) => {
      // 使用连接池执行 SQL（参数化查询防注入）
      this.pool.query('SET time_zone = "+08:00";');
      this.pool.query(
        
        'INSERT INTO temphumi2 (time, temp, humi) VALUES (?, ?, ?)',
        [formattedTime, tempInt, humiInt],
        (error, results: mysql.ResultSetHeader) => {
          if (error) {
            console.error('Database error:', error);
            reject(error);
            return;
          }
          resolve({ id: results.insertId });
        }
      );
    });
  }
}